Evaluation of Thread Level Speculation in BlueGene/Q
نویسندگان
چکیده
Thread Level Speculation(TLS) is a hardware/software technique that guarantees correct parallel execution of loops even in the presence of dependence and has potential to lead to performance gains through the parallelization of loops that cannot be proven to be free of dependencies at compile time. However, given the overhead of TLS execution, the selection of loops to be speculated is important to avoid performance degradation. Data-dependence profiling is often used to find out if the may dependencies reported by the static analysis of a compiler materialize at runtime. A cost analysis may conclude that some loops with a lower probability of dependence should be speculatively parallelized. This report addressed the question as to whether a loops’ dependence behaviour changes when the input to the program changes — a study of 57 different benchmarks indicates that it usually does not change. Then the report describes SpecEval, a new automatic speculative parallelization framework that uses single-input data-dependence profiles to find speculation candidates in the SPEC2006 and PolyBench/C benchmarks. This report also presents the first performance evaluation of TLS implementation in IBM’s BlueGene/Q supercomputer and shows that the performance of TLS is affected by several factors, including: number and coverage of speculated loops, missspeculation overhead due to function calls in a speculated loop, L1 cache miss rate and dynamic instruction path length affects.
منابع مشابه
Distributed Models of Thread Level Speculation
This paper introduces a novel application of thread-level speculation to a distributed heterogeneous environment. We propose and evaluate two speculative models which attempt to reduce some of the method call overhead associated with distributed objects. Thread-level speculation exploits parallelism in code which is not provable free of data dependencies. Our evaluation of applying thread-level...
متن کاملA Non-blocking Multithreaded Architecture with Support for Speculative Threads
In this paper we provide both a qualitative and a quantitative evaluation of a decoupled multithreaded architecture that uses non-blocking threads. Our architecture is based on simple in-order pipelines and complete decoupling of memory accesses from execution pipelines. We extend the architecture to support thread level speculation using snooping cache coherency protocols. We evaluate the perf...
متن کاملCombining thread-level speculation and just-in-time compilation in Google's V8 JavaScript engine
Thread-Level Speculation can be used to take advantage of multicore architectures for JavaScript in web applications. We extend previous studies with these main contributions; we implement Thread-Level Speculation in the state-of-the art Just-in-time enabled JavaScript engine V8 and make the measurements in the Chromium web browser both from Google instead of using an interpreted JavaScript eng...
متن کاملCompiler-Assisted Thread Level Control Speculation
This paper proposes two compiler-assisted techniques to improve thread level control speculation in speculative multithreading execution. The first technique is to identify threads which have exactly one successor and the successor’s address is statically known (we call these threads fixed-successor threads), and use a small full associative buffer to predict the successors. This technique redu...
متن کاملA Quantitative Assessment of Thread-Level Speculation Techniques
Speculative thread-level parallelism has been recently proposed as an alternative source of parallelism that can boost the performance for applications where independent threads are hard to find. Several schemes to exploit thread level parallelism have been proposed and significant performance gains have been reported. However, the sources of the performance gains are poorly understood as well ...
متن کامل